#include "../../../Common/redis.hpp"
#include<thread>

void test_session(const std::shared_ptr<sw::redis::Redis>& rc)
{
    zzy_mims::Session s(rc);
    s.append("sid1","uid1");
    s.append("sid2","uid2");
    s.append("sid3","uid3");
    s.remove("sid2");
    if(s.uid("sid1"))
    std::cout<<*s.uid("sid1")<<std::endl;
    if(s.uid("sid2"))
    std::cout<<*s.uid("sid2")<<std::endl;
    if(s.uid("sid3"))
    std::cout<<*s.uid("sid3")<<std::endl;

}
void test_status(const std::shared_ptr<sw::redis::Redis>& rc)
{
    zzy_mims::Status s(rc);
    s.append("uid1");
    s.append("uid2");
    s.append("uid3");
    s.remove("uid2");

    std::cout<<s.exist("uid1")<<std::endl;

    std::cout<<s.exist("uid2")<<std::endl;

    std::cout<<s.exist("uid3")<<std::endl;
}
void test_code(const std::shared_ptr<sw::redis::Redis>& rc)
{
    zzy_mims::Code s(rc);
    s.append("cid1","code1");
    s.append("cid2","code2",std::chrono::seconds(3));
    s.append("cid3","code3");
    s.remove("cid3");
    if(s.code("cid1"))
    std::cout<<*s.code("cid1")<<std::endl;
    if(s.code("cid2"))
    std::cout<<*s.code("cid2")<<std::endl;
    if(s.code("cid3"))
    std::cout<<*s.code("cid3")<<std::endl;
    std::this_thread::sleep_for(std::chrono::seconds(4));
    if(s.code("cid1"))
    std::cout<<*s.code("cid1")<<std::endl;
    if(s.code("cid2"))
    std::cout<<*s.code("cid2")<<std::endl;
    if(s.code("cid3"))
    std::cout<<*s.code("cid3")<<std::endl;
}
int main()
{
    auto redis_client = zzy_mims::RedisClientFactory::create("127.0.0.1",6379,0,1);
    //test_session(redis_client);
    //test_status(redis_client);
    test_code(redis_client);
    return 0;
};